1. Field of the Invention
The present invention relates in general to network switches and in particular to a zero latency flow control system for a network switch.
2. Description of Related Art
In a computer network, such as an Ethernet network, the various network stations may be linked to one another through a network switch, or through a matrix of interlinked network switches. Each network switch has several input and output ports for receiving and forwarding data transmission. Each input port may be linked to a network station or to a port of another network switch. A typical network switch also includes a crosspoint switch or other routing device which selectively routes packets between the network switch""s input and ports. Each network station has a unique network address. When a network station sends a data transmission to another network station it includes a header in the transmission containing the network address of the network station to receive the transmission. When an input port of a network switch receives an incoming transmission, it stores the transmission in a buffer memory and reads the destination address from the header and determines where the packet is to be sent. The input port then sends a connection request to a switch arbiter requesting a connection through the crosspoint switch to the particular output port that can forward the packet to the addressed destination station. The arbiter grants the request by establishing a connection through the crosspoint switch; the input port forwards the data transmission to the output port. The output port stores the packet in a buffer and then forwards the packet to the destination station.
An output port""s buffer allows it to receive data faster than it can forward it, at least until the buffer fills up. When the buffer is full, incoming data is lost. Network flow control systems help to prevent loss of packet data by slowing the flow of data into a buffer. When a buffer in a network path is nearly full, the buffer may send flow control data back to network devices that send it data packets. The flow control data tells the sending devices to either halt or slow further packet transmissions. One difficulty with such a flow control system is that it takes time for the flow control data to reach the transmitting network stations and for the transmitting stations to reduce the flow of data into the overloaded buffer. Until the transmitting stations receive and process the flow control data, those network stations continue to transmit data at a rate which can overflow the receiving port""s buffer. Also, when the rate at which data is sent to the buffer is too low, it takes time for the buffer to send flow control data to the transmitting stations telling them that they may speed up data transmissions. In the interim, system bandwidth can be under utilized.
What is needed is a flow control system for an output port buffer of a network switch that can immediately stop the flow of new data transmission into the buffer when the buffer becomes so full that it cannot store another data transmission and which can quickly resume data flow into the buffer when the buffer has the capacity to store it.
The present invention relates to a network switch having zero latency flow control system for its output port buffers. The network switch includes a set of input ports for receiving data transmissions from network stations, a set of output ports forwarding data transmissions to network stations, a crosspoint switch for routing data transmissions from each input port to a selected output port, and a routing arbitrator for controlling the crosspoint switch. When an input port receives a data transmission it sends a request to the routing arbitrator requesting a connection through the crosspoint switch to an output port that is to forward the transmission to a network station. The routing arbitrator grants a connection request by commanding the crosspoint switch to establish a data path from the requesting input port to the requested output port. Each output port stores each data transmission received from an input port in a data buffer until it can forward that data transmission to a network station. When an output port""s data buffer becomes so full that it cannot store another data transmission, it asserts a FULL signal input to the routing arbitrator. The FULL signal, when asserted, tells the routing arbitrator to refrain from granting any further connection requests to the output port asserting the FULL signal. The output port de-asserts the FULL signal when it has forwarded enough data out of its buffer that it may store another incoming data transmission. After the output port de-asserts its output FULL signal, the routing arbitrator resumes granting connection requests to the output port.
Thus the flow control system of the present invention prevents the output port buffer from overflowing. The flow control system has xe2x80x9czero latencyxe2x80x9d since, once it has signaled that the buffer is full, the arbitrator immediately stops routing additional data transmission to the output port.
It is accordingly an object of the invention to provide a means for immediately preventing data transmissions from flowing into an output port buffer of a network switch when the buffer becomes too full to store another data transmission, and for quickly resuming data transmissions to the output port when buffer space becomes available.
The concluding portion of this specification particularly points out and distinctly claims the subject matter of the present invention. However those skilled in the art will best understand both the organization and method of operation of the invention, together with further advantages and objects thereof, by reading the remaining portions of the specification in view of the accompanying drawing(s) wherein like reference characters refer to like elements.